Contents distributing method and distributing system

ABSTRACT

According to the present invention, there are disclosed a contents distributing method and a system which permits distribution of contents held by the client to the other clients, irrespective of the operating status of the client, and allows certain billing. In this system, a plurality of storage servers storing contents held by the individual clients are arranged on a network. The client issues a contents distributing request to the corresponding storage server, and acquires the contents. The storage server inquires, when the requested contents are not held, the retrieving server, and collects the contents from the other servers holding the contents. The storage server sends a billing requests, together with the billing information, to the service use fee billing server and the contents use fee billing server.

RELATED APPLICATIONS

This is a continuation application to U.S. patent application Ser. No. 10/118,083, filed Apr. 9, 2002, now allowed, to which application relates and claims priority to corresponding Japanese Patent Application No. 2002-77650, filed in Japan on Mar. 20, 2002, the entire disclosure of which is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method for distributing contents and a system for use in such a method. More particularly, the invention relates to a method for distributing contents by use of storage unit, and a system used in such a method.

2. Description of the Related Art

As a system distributing contents used via a network, Hybrid P2P system (“Internet Magazine”, Impress Publishing Co., January 2001, pp. 234-235) is known. The Hybrid P2P (HP2P) System is described as follows in the column “Features of S/C System and P2P System”, on page 235 of this magazine. “In many cases, information to be shared is located at clients, and servers manage only the location of information. Information is exchanged one to one in a redirected form from the result of retrieval of the servers. This may be called a ‘pseudo-S/C system’, and user authentication by a server is possible. The protocol stack on TCP/IP is unique to each service, and is characterized by an aperiodic update of information. While the server regulates the service player, the information self-reproduces”.

Such a system comprises a plurality of client (client computers) and a server. At a point in time of turn-on at a client, the client transmits a list of kinds of data (contents) held by the client to the server. Upon turn-off of power, each client notifies the server of the intention to turn off power. The server manages the list of clients currently holding data of various kinds with reference to inspection of the kind of transmitted data.

When a client is to receive data of a particular kind from another client, steps to be taken are as follows. First, the client wishing to receive data inquires the server from which client the data should be received. This inquiry is accomplished in the following procedure:

(1) The client wishing to receive data transmits the information which specifies the data to be received to the server.

(2) The server selects a client the closest to the client wishing to receive data from among the list of clients holding the data specified by the above-mentioned specifying information. Information showing the thus selected client is notified to the client wishing to receive data.

Then, the client wishing to receive data issues a data transmitting request to the client notified in (2) above. As a result, it is possible to receive data of the specified kind from the client having received the notice in (2) above.

An example of contents distribution by use of such a P2P (peer-to-peer) system is reported in (SIIA PEER-TO-PEER WHITE PAPER, published by Software & Information Industry Association).

The aforementioned distributing method has various problems regarding the system framework itself in that a client holds data, and the client transmits data to the requesting client.

A first problem is that clients selectable as data transmitting locations are limited to clients of which power is turned on. That is, clients of which power is currently turned off cannot be selected as a transmitting client. For example, even though there is a client the closest to the client requesting transmission of data (requesting client), holding the requested data, if it is in turn-off state of power, the data would be transmitted from another client holding the same data. In this case, the network distance between the clients exchanging the data may be longer. As a result, the total amount of the network band consumed upon data exchange becomes larger.

A second problem relates to billing. When distributing data, in general, a service use fee and a data use fee (contents use fee) are charged for data distribution. In the above-mentioned data distributing method, however, billing is not easy. In order to carry out billing, it is necessary, after conducting data transmission and receiving on the client side, to transmit an execution completion notice of data receipt from the client to the billing server. This transmission is however performed by an application which receives data, operating on the client. As a result, an easy avoidance of billing becomes possible by using means such as manipulation of the application.

SUMMARY OF THE INVENTION

Accordingly, it is an object of the present invention to provide a technique for distributing contents held by a client without increasing the total amount of network band, irrespective of the operating status of the client.

Another object of the invention is to provide a technique for achieving contents distribution which reliably enables a billing of such fees as the service use fee and the contents use fee for data distribution.

To achieve the above-mentioned objects, in the present invention, there is built a system in which a plurality of client and a plurality of storage server having storage unit are connected via a network. Each storage unit in this system store contents for each clients allocated thereto.

Upon receipt of a contents distributing request from a client, each storage server acquires the contents specified in the request from another storage server via a network. The storage server stores the acquired contents in the own storage unit as data for the request transmitting client. The storage server transmits the acquired data to the client having transmitted the data transmitting request.

Upon executing the above-mentioned data acquisition, each storage server transmits a billing request to the server managing the fees such as the service use fee and the data use fee (contents use fee).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a schematic configuration of the system assuming a contents distribution in a first embodiment of the present invention;

FIG. 2 is a block diagram illustrating an example of hardware system configuration of the information processing unit constituting the servers used in this embodiment;

FIG. 3 is a descriptive view illustrating the flow of information in this embodiment;

FIG. 4 is a flowchart illustrating the operating procedure of the contents browse module in the first embodiment;

FIG. 5 illustrates storing operation procedure of contents by the contents transmitting module in the origin server;

FIG. 6 is a flowchart illustrating the operating procedure of contents distribution by the contents transmitting module;

FIG. 7 is a flowchart illustrating the operating procedure of the contents collection/distribution module;

FIG. 8 is a descriptive view illustrating an example of the data structure of the list of contents held, showing a list of contents held by the storage servers;

FIG. 9 is a descriptive view illustrating the data structure of the list of servers holding contents used when retrieving the location of contents by the retrieving module, provided in the retrieving server;

FIG. 10 is a flowchart illustrating the operating procedure of the retrieving module;

FIG. 11A is a flowchart illustrating the operating procedure of the service use fee billing server; FIG. 11B is a flowchart illustrating the operating procedure of the contents use fee billing server;

FIG. 12 is a block diagram illustrating the system configuration for contents distribution in a second embodiment;

FIG. 13 is a flowchart illustrating the operating procedure of the connection module of the mobile client in the second embodiment;

FIG. 14 is a flowchart illustrating the authentication operating procedure of the mobile access module of the mobile access server used in the second embodiment;

FIG. 15 is a flowchart illustrating the authentication operating procedure by the authentication module of the storage server;

FIG. 16 is a flowchart illustrating the operating procedure of the contents browse module of the mobile client;

FIG. 17 is a flowchart illustrating the operating procedure of the contents collection/distribution module of the proxy storage server; and

FIG. 18 is a block diagram illustrating the configuration of the contents collection/distribution server and the storage units in a third embodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments of the present invention will now be described with reference to the drawings. The present invention is not limited to the embodiments described in the following paragraphs.

A first embodiment of the present invention will be described with reference to FIGS. 1 to 11. First, an outline of the contents distributing business achieved by the first embodiment will be described. In this embodiment, servers having storage units, i.e., a plurality of storage servers are arranged. These storage servers are connected via a network, and mutually exchange data by use of P2P. One or more information processing units serving as client computers (in this specification, simply referred to as “clients”) are correlated to the individual storage servers, as an object to which a service is to be provided. A client makes an access to each correlated storage server via the network.

In the system of this embodiment, there is arranged a server having an information processing unit performing processing for managing location of contents held by various servers within the system, i.e., a retrieving server. This retrieving server manages location of the contents held by the individual storage servers, and provides a service of providing information showing location of the contents.

An origin server for supplying contents is arranged in the system of this embodiment. The origin server distributes, in response to the request of the individual storage servers, the requested contents to the requesting storage server. The origin server collects various contents from any of various contents sources. For the contents held by the origin server also, the above-mentioned retrieving server manages the location thereof.

In this embodiment, each client serves as an user of the contents in the system. Each client itself may however serve as a provider of contents. In this case, for example, it provides the above-mentioned origin server with contents. It is also possible to make own contents available to other clients by causing a corresponding storage server to hold such contents.

FIG. 1 illustrates an outline of the configuration of the system used for achieving business of distributing the above-mentioned contents.

This system comprises storage servers 100 (100-X, 100-Y, . . . ), clients 200 (200-A, 200-B, 200-C, 200-D, . . . ), a retrieving server 300, an origin server 400, a service use fee billing server 500, and a contents use fee billing server 600. In the drawings, when there are a plurality of units of the same kind as the storage servers 100-X and 100-Y, the clients 200-A, 200-B, 200-C and 200-D, subscripts such as -X, -Y, -A, and -B are added thereto. These subscripts are added to discriminate operations of similar units. In the description in the specification, therefore, no subscripts are added when it is not necessary to make a particular discrimination.

In FIG. 1, two storage servers 100-X and 100-Y are illustrated as storage servers 100. The number of storage server is not of course limited to two. Actually, more storage servers are arranged. Clients 200-A, 200-B, . . . to receive services are allocated to the individual storage servers 100-X and 100-Y. In this embodiment, communication is carried out between the storage server 100-X and the clients 200-A and 200-B via an access network ANW1. Communication is made between the storage server 100-Y and the clients 200-C and 200-D via an access network ANW2. On the other hand, the storage servers 100-X and 100-Y, the retrieving server 300, the origin server 400, the service use fee billing server 500, and the contents use fee billing server 600 are connected by a backbone network BNW, capable of performing communication of a large volume of data at a high speed.

The storage server 100, the client 200, the retrieving server 300, the origin server 400, the service use fee billing server 500, and the contents use fee billing server 600 are provided with information processing units, respectively. These information processing units can basically be composed of similar hardware elements. However, the performance and the scale of constituent elements of the system differ in response to the scale and use of clients and servers. Hardware elements are added as required.

FIG. 2 illustrates an example of the hardware system composing server such as the storage server. As shown in FIG. 2, the information processing unit 10 has a computer 101, a communication control unit 104 and a storage unit 105. In addition, a display unit and an input unit can be provided, although not shown in FIG. 2.

The computer 101 comprises a central processing unit (CPU) 102 and a memory 103. The computer 101 achieves various functions of this embodiment through execution by the CPU 102 of programs loaded onto the memory 103. In the case of the storage server 100, the computer 101 performs various functions regarding contents such as acquisition, holding, managing, transmission, distribution and transmission of billing information. Programs for these processes and data are installed in the storage unit 105, together with programs such as an operating system. These programs are provided by the program provider in a state recorded in a recording medium such as a CD-ROM. It is also possible for a program provider to provide these programs via the network.

The origin server 400 comprises an information processing unit 10 as shown in FIG. 2. The origin server 400 has, as shown in FIG. 1, a contents transmitting module 410 executed by a computer 101, a memory 103 and original contents 420 stored in the storage unit 105.

The origin server 400 holds contents provided by a contents provider as original contents 420. The origin server 400 receives a contents acquiring request from any of the storage servers 100 by means of the contents transmitting module 410, reads out the requested contents from the original contents 420, and transmits the same.

Each client 200 is composed by using an information processing unit 10 as shown in FIG. 2. Although not shown, the client 200 has a display unit and an input unit. An audio reproducing unit should preferably be connected or built in. That is, functions necessary for reproduction of the distributed contents are provided.

The client 200 has a contents browse module 210 executed by the computer 101 as shown in FIG. 1. A program for achieving this contents browse module 210 is stored in the memory 103 and the storage unit 105, and executed by the CPU 102. The contents browse module 210 transmits and receives a contents distributing request 211 and a contents distribution 112 with the contents collection/distribution module 110. As a result, the client 200 can receive the requested contents from the storage server 100, and display the same on the display unit.

Each client 200 holds contents for the own client (copy of the original contents) in the storage server 100 as contents (120-A, 120-B, 120-C and 120-D) held for the client A (B, C or D). As a result, storage servers 100 are previously correlated to the individual clients 200 respectively to be accessed thereby. Corresponding IP address of the storage server 100 is notified to each client 200. Therefore, each client 200 holds the IP address of the storage server holding the contents for the own client. When accessing the storage server 100, therefore, the contents browse module 210 reads out the IP address thereof.

The retrieving server 300 is composed of an information processing unit 10 as shown in FIG. 2. The retrieving server 300 has, as shown in FIG. 1, a retrieving module 310 executed by the computer 101, and a contents holding server list 330 stored in the memory 103 and the storage unit 105.

On the retrieving server 300, the retrieving module 310 operates. The retrieving module 310 manages original contents 420 held by the origin server 400, and contents (120-A, 120-B, 120-C and 120-D) held for the client A (B, C or D) stored by the storage servers 100-X and 100-Y, by means of the contents holding server list 330. Location management of these contents is accomplished by receiving an update notice of contents held 413 from the origin server 400, and a contents information notice 113 b from the individual storage servers 100. When receiving a contents retrieving request 113 a from any of the storage servers 100-X, it transmits the list of servers holding the requested contents (origin server 400, or any other storage server 100-Y) as a retrieval result notice 311 to the request transmitting storage server 100. Upon receipt of this notice, the storage server 100-X determines a server which is to acquire the contents by use of P2P on the basis of this list.

The contents holding server list 330 is data used by the retrieving module 310 for performing location manage regarding the contents (120-A, 120-B, 120-C and 120-D) held for the client A (B, C or D) stored in the individual servers 100, and the original contents 420 held by the origin server 400. FIG. 9 illustrates an example of the data structure thereof.

As shown in FIG. 9, the contents holding server list 330 has a field (contents name) for specifying contents, a field (contents holding server) for specifying IP address of the servers storing contents. When a plurality of server holds the same contents, each server sequentially stores the IP addresses such as 3321A, 3321B and 3321C.

Each storage server 100 has contents collection/distribution module 110 which functions for acquiring the contents. Each storage server 100 also stores contents for clients correlated thereto. For example, the storage server 100-X stores contents 120-A held for the client A, and contents 120-B held for the client B. For another example, the storage server 100-Y stores the contents 120-C held for the client C, and the contents 120-D held for the client D. The storage server 100 has furthermore a contents list 130 for managing as to what contents are held.

Matching of the clients 200-A, 200-B, 200-C and 200-D with the storage servers 100-X and 100-Y is accomplished by selecting a storage server 100 the closest possible to the client, i.e., the closest storage server 100. More specifically, a storage server with the shortest network distance is selected.

The contents provided to the clients 200 include various data such as music, movies, broadcast programs, games and computer programs. There is no particular restriction imposed on the kind of contents. Various data capable of being exchanged via the network are included. The contents held by each storage server is distributed, in response to a request from a client, to the requesting client.

The contents collection/distribution module 110 is executed by the computer 101, and performs acquisition, holding and distribution of contents for providing to the client in the storage server 100. More specifically, the computer 101 conducts the following processing as a contents collection/distribution module:

(1) receiving a contents distributing request from any of the information processing units via the network;

(2) distributing, when the requested contents are stored in the storage unit, such contents to the distribution-requesting information processing unit;

(3) acquiring, when the requested contents are not stored in the storage units, the contents from any other information processing unit via the network;

(4) causing the storage units to store the thus acquired contents; and

(5) distributing the thus acquired contents to the requesting information processing unit via the network.

More particularly, when any of the correlated clients issues a distributing request 211 of specific contents, the contents collection/distribution module 110 checks whether or not the requested contents are held with reference to the contents list 130. When the requested contents are held, the contents held are distributed. When the requested contents are not held, on the other hand, the contents are acquired from any other server. The acquired contents are stored in the storage unit 105. Upon completion, the thus acquired contents are distributed to the requesting client 200.

Upon receipt of the contents distributing request 211 from the client 200, the contents collection/distribution module 110 starts operation. The contents collection/distribution module 110 sends a contents retrieving request 113 a, and a contents information notice 113 b, receives a retrieval result 311 to/from the retrieving module 310 on the retrieving server 300. When the storage server 100 does not hold the contents requested by the client, the contents collection/distribution module 110 transmits a contents retrieving request 113 a to the retrieving module 310. Upon receipt of a retrieval result notice 311 from the retrieving module 310, it acquires information showing location of the contents included in the retrieval result notice. Based on this information, it transmits a contents acquiring request to the server storing the required contents. For example, if the server storing the required contents is the storage server 100-Y, contents acquiring request 111Y is transmitted to the contents collection/distribution module 110-Y. If the server storing the required contents is the origin server 400, contents acquiring request 114 is transmitted to the contents transmitting module 410.

As a result of such processing, the contents collection/distribution module 110-X executes acquisition of the contents using P2P with the storage server 100-Y, or the origin server 400. The thus acquired contents are stored as the contents 120-A held for the client A (B, C or D). Subsequently, the acquired contents are distributed to the client 200-A issuing the contents distributing request 211.

As billing of the service use fee and the contents use fee resulting from the contents distribution, billing requests 115 and 116 are transmitted to the service use fee billing server 500 and the contents use fee billing server 600. These billing requests 115 and 116 comprise billing information including a set of:

Contents name;

Name of a client having issued a distributing request of the contents;

Distributing time of the requested contents; and

Name of contents provider.

A contents list 130 shown in FIG. 8 may be used as this information. For the purpose of transmitting the above-mentioned information, therefore, the contents collection/distribution module 110 retains this information in the storage unit 105 in the own server upon every update of the contents list 130 of contents held.

The billing requests 115 and 116 are transmitted upon every distribution of the contents. The contents collection/distribution module 110 may periodically transmit billing requests 115 and 116 to the service use fee billing server 500 and the contents use fee billing server 600.

When acquiring new contents, the contents collection/distribution module 110 notifies the retrieving module 310 of location information of acquired contents as contents information notice 113 b.

The contents list 130 is a data for managing the contents held by the own storage servers. FIG. 8 illustrates details of the data structure thereof. As shown in FIG. 8, this data structure comprises a contents table 1300 having a field showing the name of contents (contents name field) 1310, and a field showing the name of a client managed as a holder of said contents (contents holders field) 1320. This contents holders field 1320 includes information showing the history of contents distribution. This information includes a field showing a name of contents holder, e.g. a name of client (holders name field) 1321, a field showing the time of the day when the contents was distributed to the client (distribution time field) 1322, and a field showing the name of a client providing the required contents (name of contents provider field) 1323.

For example, when a storage server 100-X acquires a contents from the client B for the client A, the name of the contents is recorded in the contents name field 1310.

Here, the client A, newly acquired said contents, is recorded in the contents holders field 1320. Also, when the storage server 100-X distributes the contents to the client A, the distribution time 1 is recorded in the distribution time field 1322. Further, corresponding to the distribution time 1, the name of contents provider is recorded in the contents provider field 1323. The contents provider hereby means the original provider of the contents. For example, if the original provider of the contents distributed to the client A is client B, the name of the client B is recorded. For another example, if the contents is acquired from the origin server 400, the name of contents provider who provided the contents to the origin server 400 is recorded.

The service use fee billing server 500 and the contents use fee billing server 600 are composed by use of hardware similar to the servers as shown in FIG. 2. The service use fee billing server 500 mounts a fee calculating module 510 achieved by the computer 101 as shown in FIG. 1. The contents use fee billing server 600 mounts a fee calculating module 610 achieved by the computer 101. Programs for these modules are stored in the storage unit 105. The server use fee billing server 500 and the contents use fee billing server 600 store calculated fees stored in the storage unit 105.

The service use fee for each client is calculated, for example, by multiplying the number of contents distributing requests issued by each client by a unit price of the contents distributing service fee. The contents use fee is calculated, for example, on the basis of the number of purchases of contents by each client, or the number of runs of referencing of the contents. The term the “number of purchases of contents” as herein used means the number of issuances of distributing request for the contents held for the other clients. The term the “number of runs of referencing of contents” means the number of issuances of distributing request for the contents held for the own client. The calculated amounts of fee are accumulated in the servers 500 and 600, respectively, as described above. A bill is issued and dispatched at the end of a certain period, monthly for example, to each client. Payment of fees may be made automatically from a bank account.

The charged amount of fees, in the case of service use fee, is distributed among servers participating in supply of services at a predetermined ratio. This calculation may be accomplished by a calculation module 510 of the service use fee billing server 500. The balance of the contents use fees after subtracting the fees for the servers participating in the supply of services, the storage server 100, the origin server 400, the retrieving server 300, and the contents use fee billing server 600 is paid as compensation to the contents provider. Payment may be made through transfer to a specified bank account. It is needless to mention that payment may be made with an electronic currency independently valid within this system.

Cases of management of supply of contents in this embodiment will now be described. FIG. 3 illustrates the flow of information in the system shown in FIG. 1. The symbols attached to the arrows in FIG. 3 correspond to the symbols attached to the arrows in FIG. 1.

FIG. 4 illustrates the operating procedure of the contents browse module 210 of the client 200. The contents browse module 210 reads out the IP address of the storage server 100 holding the contents for the own client from the storage unit (step 2101). Then, a contents distributing request is transmitted to the storage server 100 having the read IP address (step 2102). At this point in time, information specifying the requested contents is also transmitted. Subsequently, the contents sent from the storage server 100 are received (step 2103). The received contents are reproduced and output on a display unit or the like (step 2104). The flow of information in this case occurs between the client 200 and the storage server 100, as shown in FIGS. 1 and 3.

Then, the operating procedure of a contents transmitting module 410 of the contents origin server 400 will be described. The contents transmitting module 410 operates when registering the original contents 420 and when receiving a contents acquiring request 114 from the storage server 100.

The operating procedure upon registering the original contents is illustrated in FIG. 5. In FIG. 5, the contents transmitting module 410 acquires the original contents from a contents supply source not shown, and stores the same into the original contents 420 (step 4101). Thereafter, the contents transmitting module 410 transmits contents information notice 413 to the retrieving server 300 (step 4102). This contents information notice 413 includes information of contents name showing contents held anew by the origin server 430.

Then, the operating procedure of the contents transmitting module 410 upon receipt of a contents acquiring request from the storage server will be described. The operating procedure is illustrated in FIG. 6. The contents transmitting module 410 receives the contents acquiring request 114 from the storage server 100 (step 4103). This request contains the contents name of the contents acquired by the storage server. The contents transmitting module 410 reads out the contents from the original contents stored in the storage unit 105 on the own server (step 4104). Then, the contents are transmitted to the storage server 100 having issued the request (step 4105).

FIG. 7 illustrates the operating procedure of the contents collection/distribution module 110 of the storage server 100. In FIG. 7, the contents collection/distribution module 110 receives a contents distributing request 211 from the client 200 (step 1111). The name of contents of which distribution is requested by the client is specified in this contents distributing request. Upon receipt of this contents distributing request, the contents collection/distribution module 110 starts operation. Then, the contents collection/distribution module 110 retrieves the contents list 130 as to whether or not the own storage server 100 has the requested contents (step 1112). That is, the module 110 retrieves whether or not the received contents name is contained in the contents name field 1310 shown in FIG. 8, thus determining whether or not the own storage server holds the contents requested by the client (step 1113).

When the own storage server holds the contents requested by the client, the contents list 130 is updated (step 1114). That is, the name of contents holder is added to the holders field 1320, or contents distributing time is added to the distribution time field 1322. Subsequently, the contents are transmitted to the requesting client 200 (step 1115). In addition, billing information is sent to the billing servers, that is, the service use fee billing server 500 and the contents use fee billing server 600 (step 1125).

When the own storage server does not hold the contents requested by the client, a contents retrieving request 113 a is transmitted to the retrieving server 300. This request includes the specified contents name received in step 1111 (step 1116). Thereafter, a retrieval result notice 311 is received from the retrieving server 300 (step 1117). As a result of receipt of this notice 311, the contents collection/distribution module 110 acquires a list of IP addresses (see FIG. 9) of the storage server 100 holding the specified contents. When a storage server holding the requested contents is not present, however, an IP address of the origin server 400 is acquired.

The contents collection/distribution module 110 determines a server the closest to the own storage server from the list of IP addresses acquired (step 1118). The number of hops from the own edge storage to a server of which IP address is known already, can be known by a method of transmitting an ECHO_REQUEST packet of the ICMP protocol. The closest server can be determined by knowing the number of hops by the above-mentioned method by use of the IP addresses of the individual servers contained in the list of IP addresses.

Then, the contents collection/distribution module 110 transmits the contents acquiring request 111Y to the determined server (1119). The contents name of the contents to be acquired should be contained in this request 111Y.

Then, the contents 111X from the server serving as the destination of the contents acquiring request 111Y (a storage server 110-Y, in this case) is received (step 1120). The received contents are stored in the storage unit 105 of the own server (step 1121). More specifically, the contents are stored as contents 120-A held for the client A (B, C or D). Furthermore, the contents list 130 is updated (step 1122). The contents collection/distribution module 110 transmits the contents information notice 113 b to the retrieving server 300 (step 1123). As a result, the fact that the own storage server 100 now holds the new contents is notified to the retrieving server 300.

Subsequently, the contents collection/distribution module 110 distributes the acquired contents to the requesting client 200 (step 1124). The billing information is sent to the billing servers including the service use fee billing server 500 and the contents use fee billing server 600 (step 1125).

FIG. 10 illustrates the operating procedure of the retrieving module 310. The retrieving module 310 starts operation of receiving a contents retrieving request 113 a from the storage server 100 or receiving a contents information notice 113 b (step 3101). Upon start of operation, the retrieving module 310 determines which of the contents retrieving request 113 a and the contents information notice 113 b has been received (step 3102). When the contents retrieving request 113 a has been received, the retrieving module 310 transmits the contents holding server list 330 corresponding to the specified contents to the requesting storage server 110 (step 3103). When the contents information notice 113 b has been received, on the other hand, the IP address of the server transmitting notice is added to the contents holding server list 330 (step 3104).

FIG. 11A illustrates the operating procedure of the service use fee billing server 500. As shown in FIG. 11A, the service use fee billing server 500 receives a billing request 115 from the storage server 100 (step 5101). A fee calculating module 510 calculates a service use fee by use of the billing information sent together with the billing request (step 5102). The module stores the calculated fee into the storage unit 105 of the own server. For the service fee, distribution ratios are determined taking account of contribution of various servers participating in the supply of the service, thereby deciding compensations to the individual servers.

FIG. 11B illustrates the operating procedure of the contents use fee billing server 600. As shown in FIG. 11B, the contents use fee billing server 600 receives a billing request 116 from the storage server 100 (step 6101). A fee calculating module 610 calculates a contents use fee by use of the billing information sent together with the billing request (step 6102). The thus calculated fee is stored in the storage unit 105 of the own server. For the content use fee, distribution ratios are determined taking account of contribution of various servers participating in the supply of the contents, thereby deciding compensations to the individual servers.

In this embodiment, as described above, contents held for the each clients are retained on storage servers kept in the continuous operating state. These contents are collected by use of P2P and successfully distributed. As a result, even in a state in which power of a client is disconnected, it is possible to distribute the contents of that client to the other clients. It is consequently possible to reduce the total amount of network band consumed upon collecting and distributing contents. The contents collection/distribution module located on the storage server takes charge of generation of information necessary for billing the service use fee or the contents use fee. It is therefore possible to certainly accomplish billing while prohibiting manipulation of the operating programs of the modules from the client side.

A second embodiment of the present invention will now be described with reference to FIGS. 12 to 16.

FIG. 12 illustrates a configuration of the system used in this embodiment. In this embodiment, a client 200-Am capable of receiving an IC card 900 inserted issues a contents distributing request. The client 200-Am usually accesses the storage server 100-X, and contents for own client are stored in the above-mentioned server 100-X. The client 2005 Am is a portable mobile terminal. At the point in time shown in FIG. 12, it is present near a mobile access server 700. Near the mobile access server 700, there exists a storage server 100-Z.

The storage server 100-Z has basically the same configuration as the storage server 100-X. Therefore, it has a contents 120-S held for the client S of the storage server 100-Z. Apart from the above, as the storage server 100-Z serves as a proxy for the distribution function of the storage server 100-X, the storage server 100-Z temporarily stores a contents to be transmitted as temporary contents 120.

The client 200-Am mounts a connection module 220-Am and a contents browse module 210-Am. The connection module 220-Am is authenticated by an authenticating module 140-X on the storage server 100-X via the mobile access server 700. Upon successful authentication, it is possible to receive distribution of a copy of the contents 120-A already held in the storage server 100-X for the own client from the storage server 100-Z (existing near the mobile terminal 200-Am, which is the client).

The operating procedure of the connection module 220-Am, the mobile access server 700, the authentication module 140-X, the contents browse module 210-Am, and the contents collection/distribution module 110 will now be described in detail.

The operating procedure of the connection module (6001) is illustrated in FIG. 13. The connection module 220-Am reads in user-specified information 920 (information permitting primary identification of a user using the client) stored in the IC card 900 (step 2111). Then, the connection module 220-Am broadcasts a mobile access request 227 to retrieve a nearby mobile access server 700 (step 2112). The request should contain the read-in user-specified information, and the IP address (previously set by the user) of the storage server 100-X holding the contents 120-A for the own client. Then, when there exists the mobile access server 700, the connection module 220-Am receives a nearby storage server notice 712 (step 2113). This notice 712 contains the IP address of a storage server 110-Z existing near the position of the client. This IP address is previously registered in the mobile access server 200-Am.

The operating procedure of the mobile access server 700 is illustrated in FIG. 14. The mobile access server 700 receives a mobile access request 227 from the client 200-Am and starts operation (step 7101). This request contains, as described above, the user-specified information, and the IP address of the storage server 100-X holding the contents 120-A for the request-issuing client 200-Am. The mobile access server 700 reads in the received use-specified information, and the IP address of the storage server 100-X (step 7102). The mobile access server 700 transmits an authentication request 711 to the storage server 100-X having the above-mentioned IP address (step 7103). This request 711 must contain the aforementioned user-specified information.

The mobile access server 700 receives an authentication result 147 from the above-mentioned storage server 100-X, and determines whether successful or not of the authentication result (step 7105). Only when the authentication is successful, it transmits a nearby storage server notice 712 to notify the client 200-Am of the IP address of the nearby storage server 100-Z registered in the own mobile access server 700 (step 7106). When authentication is unsuccessful, the unsuccessful authentication is notified to the client 200-Am (step 7107).

The operating procedure of the authentication module 140 is illustrated in FIG. 15. The authentication module 140 receives an authentication request 711 from the mobile access server 700 (step 1401). This request 711 contains user-specified information. The authentication module 140 checks up whether or not the received specified information is contained in the user-specified information list (previously set in the own server) of an accessible user held by the own storage server 100-X (step 1402). The authentication module 140 notifies the authentication result 147 for notifying “success” if the user-specified information is contained in the list, and “failure” if not to the mobile access server 700 having issued the authentication request (step 1403).

The contents browse module 210-Am mounted on the client 200-Am operates basically in the same manner as the above-mentioned contents browse module 210. However, a storage server storing contents and a storage server receiving distribution of contents may differ for Client 200-Am.

FIG. 16 illustrates the operating procedure of the contents browse module 210-Am existing on the client 200-Am. In FIG. 16, the contents browse module 210-Am reads out the IP address of the storage server 100-X holding data for own client (step 2111). As described above, each client is correlated to one storage server. And the user of the client sets the IP address of the storage server. The contents browse module 210-Am transmits a distributing request of contents held, together with the name of contents of which transmission is requested, to the storage server 100-Z having received the notice from the above-mentioned mobile access server 700 (step 2112). At this point in time, the name of contents of which transmission is requested, and the IP address of the storage server holding the contents for the own client are simultaneously transmitted.

The contents browse module 210-Am receives contents held from the storage server 100-Z (step 2113), and displays the received contents at the client 200-Am (step 2114).

FIG. 17 illustrates the operating procedure of the contents collection/distribution module 110-Z on the storage server 100-Z. This contents collection/distribution module 110-Z also, operates in basically the same manner as in the aforementioned contents collection/distribution module 110. In this embodiment, however, it serves temporarily as a proxy storage server 100 conducting contents distribution to the client 200-Am. It is therefore slightly different from contents distribution based on the storage server 100-X in a fixed relationship with the client 200-Am. Functions as a proxy server will be described here.

The content collection/distribution module 110-Z starts operation upon receipt of a distributing request of contents held 211 from the client 200-Am. First, the contents collection/distribution module 110-Z transmits a holding confirmation request 111Xb to the storage server 100-X on the basis of the IP address of the storage server 100-X notified from the client 200-Am (step 1131). This request contains the name of contents of which transmission is requested. When there exist contents requested by the storage server 100-X having received the holding confirmation request, the contents collection/distribution module 110 of the storage server 100-X returns a holding confirmation result 111Za. The contents collection/distribution module 110-Z thus receives the holding confirmation result 111Za (step 1132).

As a result, the contents collection/distribution module 110-Z acquires the contents 111Zb of which distribution is requested by the client from the storage server 100-X in accordance with the same procedure as in the first embodiment, when holding of the contents could be confirmed (step 1133). Further, the storage server 100-Z stores the acquired contents as the temporary contents 120-T (step 1134).

The contents collection/distribution module 100-Z executes contents distribution 112 for distributing the acquired contents to the client 200-Am having transmitted the contents distributing request (step 1135). Billing requests 115 and 116 are also transmitted, together with the billing information, in the same manner as in the aforementioned first embodiment (step 1136). In this embodiment, the storage server 100-Z performs contents distribution in proxy. Fees would therefore be additionally billed for this service in proxy also for the service use fee.

In this embodiment, it is necessary to provide authentication means such as an IC card in the client. The risk of storing the data received from the storage server by the client into the local storage of the own client is eliminated by providing authentication means only on the client not provided with a storage. That is, wrong secondary use of the contents received by the client is avoided.

In this embodiment, data can be received from a nearby storage server, irrespective of the location of the client. Furthermore, this nearby storage server performs collection and distribution of the contents by use of P2P from the nearby position. As a result, it is possible to minimize the total amount of network band consumed for collection and distribution of the contents, irrespective of the location of the client.

This embodiment is based on an assumption that the storage server 100-X holds the contents requested by the client. However, even when the storage server 100-X does not hold the contents requested, the present embodiment can be extended. In this case, upon receipt of a contents holding confirmation request 111Xb from the proxy server, the contents collection/distribution module 110-X of the storage server 100-X temporarily withholds return of the holding confirmation result 111Za. In the same manner as in the above-mentioned first embodiment, information showing the location of the contents is acquired from the retrieving server 300, and the contents is acquired from the other storage server 100-Y holding the contents or the origin server 400 holding the contents. Thereafter, the contents collection/distribution module 110-X transmits the holding confirmation result 111Za to the contents collection/distribution module 110-Z. Thereafter, it is possible to conduct distribution of the contents through processing as described above.

A third embodiment of the present invention will now be described with reference to FIG. 18. The third embodiment differs from the first embodiment in the configuration of the storage server 100. That is, in this embodiment, the portion corresponding to the storage server 100 in the first embodiment comprises a contents collection/distribution server 1100 and a storage unit 1200 performing collection of the contents and distribution of the contents.

The contents collection/distribution server 1100 has a contents collection/distribution module 1110. The storage unit 1200 has contents 120-A held for client the A, contents 120-B held for the client B and a contents list 130. The contents collection/distribution server 1100 and the storage unit 1200 can be connected via a network such as a LAN or WAN. Collection and distribution of the contents in this embodiment can be carried out in the same manner as the storage server 100 in the above-mentioned first embodiment.

In this embodiment, a plurality of storage units can be connected to a single collection/distribution server 1100.

In each of these embodiments described above, when contents distribution is carried out from a distributing client to a requesting client, it is possible to distribute the contents to the requesting client by the storage server even in a state that power of the distributing client is turned off. As a result, it is possible to reduce the total amount of network band consumed upon collection and distribution of the contents. The contents collection/distribution module existing on the storage server takes charge of generation of information necessary for billing of the service use fee and the contents use fee. The possibility of manipulation of the operating programs for the module on the client side is therefore low, thus making it possible to certainly perform the billing. Furthermore, for the storage unit is independently installed in this embodiment, it is easy to use a plurality of storage unit and addition thereof, thus suitable for a large-scale contents distribution. 

1. An apparatus for distributing contents, comprising: a computer, deployed to be connected to other information processing units and a retrieving server for retrieving a location of the contents via a network, performing processing relating to distributions of contents; and a storage unit connected to said computer, wherein said storage unit stores the contents for a plurality of information processing units performing distribution of contents, and wherein said computer performs steps of: receiving, via said network, a distributing request from any of the information processing units; distributing said contents to the information processing unit requesting distribution of said contents, when said requested contents are stored in said storage unit; transmitting a request for retrieving a location of the requested contents are not stored in said storage unit; receiving a result of retrieval from said retrieving server; acquiring said contents via said network from one of the other information processing units, which are included in said result; causing said storage unit to store said acquired contents; and distributing, via said network, said requested contents to said requesting information processing unit.
 2. The apparatus for distributing contents according to claim 1, wherein the computer further performs the steps of: collecting information for fee billing resulting from distribution of contents when distributing contents to any of said information processing units; and transmitting, via said network, the information collected for fee billing and a fee billing request to an information processing apparatus performing fee billing. 